﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TP2.XNA_Game.Vistas;
using TP2.Lib;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace TP2.XNA_Game.Vistas
{
    [VistaPara(typeof(TorpedoRastreador))]
    class VistaTorpedoRastreador : Vista
    {
        #region IVista Members

        public override Texture2D GetTexture2D()
        {
            return (this.Default);
        }


        public override Vector2 GetVector2()
        {
            float x = (float)this.ElementoJuegoAsociado.Posicion[0];
            float y = (float)this.ElementoJuegoAsociado.Posicion[1];
            Vector2 vector = new Vector2(x, y);
            return (vector);
        }

        #endregion

        public VistaTorpedoRastreador(Proyectil proyectil)
        {
            this.ElementoJuegoAsociado = (TorpedoRastreador)proyectil;
            this.PosicionVista = this.GetVector2();
            this.GirarImagenHorizontal = false;
        }

        public VistaTorpedoRastreador(Proyectil proyectil, Texture2D imagen)
        {
            this.ElementoJuegoAsociado = (TorpedoRastreador)proyectil;
            this.PosicionVista = this.GetVector2();
            this.Default = imagen;
            this.GirarImagenHorizontal = false;
        }


        public override void Actualizar()
        {
            this.PosicionVista = ((IVista)this).GetVector2();
        }

        public override void RangosElemento(Microsoft.Xna.Framework.GraphicsDeviceManager graphics)
        {
            //Establece rangos
            if (this.PosicionVista.Y < 0)
            {
                ((Proyectil)this.ElementoJuegoAsociado).ImpactoConBorde();
            }
            if (this.PosicionVista.Y > graphics.PreferredBackBufferHeight - this.Default.Height)
            {
                ((Proyectil)this.ElementoJuegoAsociado).ImpactoConBorde();
            }
            if (this.PosicionVista.X < 0)
            {
                ((Proyectil)this.ElementoJuegoAsociado).ImpactoConBorde();
            }
            if (this.PosicionVista.X > graphics.PreferredBackBufferWidth - this.Default.Width)
            {
                ((Proyectil)this.ElementoJuegoAsociado).ImpactoConBorde();
            }
        }
    }
}
